FALSE Registered S3 methods overwritten by 'dbplyr':
FALSE method from
FALSE print.tbl_lazy
FALSE print.tbl_sql
FALSE -- Attaching packages ----------------------------------------------------------------------- tidyverse 1.3.1 --
FALSE √ ggplot2 3.3.5 √ purrr 0.3.4
FALSE √ tibble 3.1.6 √ dplyr 1.0.8
FALSE √ tidyr 1.2.0 √ stringr 1.4.0
FALSE √ readr 2.1.2 √ forcats 0.5.1
FALSE -- Conflicts -------------------------------------------------------------------------- tidyverse_conflicts() --
FALSE x dplyr::filter() masks stats::filter()
FALSE x dplyr::lag() masks stats::lag()
FALSE
FALSE Attaching package: ‘scales’
FALSE
FALSE The following object is masked from ‘package:purrr’:
FALSE
FALSE discard
FALSE
FALSE The following object is masked from ‘package:readr’:
FALSE
FALSE col_factor
FALSE
FALSE Registered S3 method overwritten by 'data.table':
FALSE method from
FALSE print.data.table
FALSE Registered S3 method overwritten by 'htmlwidgets':
FALSE method from
FALSE print.htmlwidget tools:rstudio
FALSE
FALSE Attaching package: ‘plotly’
FALSE
FALSE The following object is masked from ‘package:ggplot2’:
FALSE
FALSE last_plot
FALSE
FALSE The following object is masked from ‘package:stats’:
FALSE
FALSE filter
FALSE
FALSE The following object is masked from ‘package:graphics’:
FALSE
FALSE layout
FALSE
FALSE data.table 1.14.2 using 8 threads (see ?getDTthreads). Latest news: r-datatable.com
FALSE
FALSE Attaching package: ‘data.table’
FALSE
FALSE The following objects are masked from ‘package:dplyr’:
FALSE
FALSE between, first, last
FALSE
FALSE The following object is masked from ‘package:purrr’:
FALSE
FALSE transpose
FALSE
FALSE
FALSE Attaching package: ‘lubridate’
FALSE
FALSE The following objects are masked from ‘package:data.table’:
FALSE
FALSE hour, isoweek, mday, minute, month, quarter, second, wday, week, yday, year
FALSE
FALSE The following objects are masked from ‘package:base’:
FALSE
FALSE date, intersect, setdiff, union
FALSE
FALSE Loading required package: kableExtra
FALSE
FALSE Attaching package: ‘kableExtra’
FALSE
FALSE The following object is masked from ‘package:dplyr’:
FALSE
FALSE group_rows
FALSE
FALSE
FALSE Attaching package: ‘timetk’
FALSE
FALSE The following object is masked from ‘package:data.table’:
FALSE
FALSE :=
FALSE
FALSE Loading required package: svd
FALSE Loading required package: forecast
FALSE Registered S3 method overwritten by 'quantmod':
FALSE method from
FALSE as.zoo.data.frame zoo
FALSE
FALSE Attaching package: ‘Rssa’
FALSE
FALSE The following object is masked from ‘package:stats’:
FALSE
FALSE decompose
Warning: `funs()` was deprecated in dplyr 0.8.0.
Please use a list of either functions or lambdas:
# Simple named list:
list(mean = mean, median = median)
# Auto named with `tibble::lst()`:
tibble::lst(mean, median)
# Using lambdas
list(~ mean(., trim = .2), ~ median(., na.rm = TRUE))
This warning is displayed once every 8 hours.
Call `lifecycle::last_lifecycle_warnings()` to see where this warning was generated.
Warning: Removed 397 row(s) containing missing values (geom_path).

Warning: Width not defined. Set with `position_dodge(width = ?)`
Warning in max(ids, na.rm = TRUE) :
no non-missing arguments to max; returning -Inf
Warning: Removed 8 row(s) containing missing values (geom_path).

Warning: Width not defined. Set with `position_dodge(width = ?)`
Warning in max(ids, na.rm = TRUE) :
no non-missing arguments to max; returning -Inf
Warning: Removed 203 row(s) containing missing values (geom_path).

Warning: Width not defined. Set with `position_dodge(width = ?)`
Warning in max(ids, na.rm = TRUE) :
no non-missing arguments to max; returning -Inf
Warning: Removed 46 row(s) containing missing values (geom_path).

Time Series Analysis
Warning: `gather_()` was deprecated in tidyr 1.2.0.
Please use `gather()` instead.
This warning is displayed once every 8 hours.
Call `lifecycle::last_lifecycle_warnings()` to see where this warning was generated.
Max lag exceeds data available. Using max lag: 72
Max lag exceeds data available. Using max lag: 74
Max lag exceeds data available. Using max lag: 21
Linking to GEOS 3.9.1, GDAL 3.2.1, PROJ 7.2.1; sf_use_s2() is TRUE
[1] "sf" "data.frame"
[1] "Afghanistan" "Africa" "Albania"
[4] "Algeria" "Andorra" "Angola"
[7] "Anguilla" "Antigua and Barbuda" "Argentina"
[10] "Armenia" "Aruba" "Asia"
[13] "Australia" "Austria" "Azerbaijan"
[16] "Bahamas" "Bahrain" "Bangladesh"
[19] "Barbados" "Belarus" "Belgium"
[22] "Belize" "Benin" "Bermuda"
[25] "Bhutan" "Bolivia" "Bonaire Sint Eustatius and Saba"
[28] "Bosnia and Herzegovina" "Botswana" "Brazil"
[31] "British Virgin Islands" "Brunei" "Bulgaria"
[34] "Burkina Faso" "Burundi" "Cambodia"
[37] "Cameroon" "Canada" "Cape Verde"
[40] "Cayman Islands" "Central African Republic" "Chad"
[43] "Chile" "China" "Colombia"
[46] "Comoros" "Congo" "Cook Islands"
[49] "Costa Rica" "Cote d'Ivoire" "Croatia"
[52] "Cuba" "Curacao" "Cyprus"
[55] "Czechia" "Democratic Republic of Congo" "Denmark"
[58] "Djibouti" "Dominica" "Dominican Republic"
[61] "Ecuador" "Egypt" "El Salvador"
[64] "Equatorial Guinea" "Eritrea" "Estonia"
[67] "Eswatini" "Ethiopia" "Europe"
[70] "European Union" "Faeroe Islands" "Falkland Islands"
[73] "Fiji" "Finland" "France"
[76] "French Polynesia" "Gabon" "Gambia"
[79] "Georgia" "Germany" "Ghana"
[82] "Gibraltar" "Greece" "Greenland"
[85] "Grenada" "Guam" "Guatemala"
[88] "Guernsey" "Guinea" "Guinea-Bissau"
[91] "Guyana" "Haiti" "High income"
[94] "Honduras" "Hong Kong" "Hungary"
[97] "Iceland" "India" "Indonesia"
[100] "International" "Iran" "Iraq"
[103] "Ireland" "Isle of Man" "Israel"
[106] "Italy" "Jamaica" "Japan"
[109] "Jersey" "Jordan" "Kazakhstan"
[112] "Kenya" "Kiribati" "Kosovo"
[115] "Kuwait" "Kyrgyzstan" "Laos"
[118] "Latvia" "Lebanon" "Lesotho"
[121] "Liberia" "Libya" "Liechtenstein"
[124] "Lithuania" "Low income" "Lower middle income"
[127] "Luxembourg" "Macao" "Madagascar"
[130] "Malawi" "Malaysia" "Maldives"
[133] "Mali" "Malta" "Marshall Islands"
[136] "Mauritania" "Mauritius" "Mexico"
[139] "Micronesia (country)" "Moldova" "Monaco"
[142] "Mongolia" "Montenegro" "Montserrat"
[145] "Morocco" "Mozambique" "Myanmar"
[148] "Namibia" "Nauru" "Nepal"
[151] "Netherlands" "New Caledonia" "New Zealand"
[154] "Nicaragua" "Niger" "Nigeria"
[157] "Niue" "North America" "North Macedonia"
[160] "Northern Cyprus" "Northern Mariana Islands" "Norway"
[163] "Oceania" "Oman" "Pakistan"
[166] "Palau" "Palestine" "Panama"
[169] "Papua New Guinea" "Paraguay" "Peru"
[172] "Philippines" "Pitcairn" "Poland"
[175] "Portugal" "Puerto Rico" "Qatar"
[178] "Romania" "Russia" "Rwanda"
[181] "Saint Helena" "Saint Kitts and Nevis" "Saint Lucia"
[184] "Saint Pierre and Miquelon" "Saint Vincent and the Grenadines" "Samoa"
[187] "San Marino" "Sao Tome and Principe" "Saudi Arabia"
[190] "Senegal" "Serbia" "Seychelles"
[193] "Sierra Leone" "Singapore" "Sint Maarten (Dutch part)"
[196] "Slovakia" "Slovenia" "Solomon Islands"
[199] "Somalia" "South Africa" "South America"
[202] "South Korea" "South Sudan" "Spain"
[205] "Sri Lanka" "Sudan" "Suriname"
[208] "Sweden" "Switzerland" "Syria"
[211] "Taiwan" "Tajikistan" "Tanzania"
[214] "Thailand" "Timor" "Togo"
[217] "Tokelau" "Tonga" "Trinidad and Tobago"
[220] "Tunisia" "Turkey" "Turkmenistan"
[223] "Turks and Caicos Islands" "Tuvalu" "Uganda"
[226] "Ukraine" "United Arab Emirates" "United Kingdom"
[229] "United States" "United States Virgin Islands" "Upper middle income"
[232] "Uruguay" "Uzbekistan" "Vanuatu"
[235] "Vatican" "Venezuela" "Vietnam"
[238] "Wallis and Futuna" "World" "Yemen"
[241] "Zambia" "Zimbabwe"
`summarise()` has grouped output by 'Country'. You can override using the `.groups` argument.
Error: cannot allocate vector of size 421.3 Mb

LS0tDQp0aXRsZTogIkNPVklELTE5IFZhcmlhbnRzIEFuYWx5c2lzIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KYGBge3IsIGluY2x1ZGUgPSBGQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gRkFMU0UsIHdhcm5pbmcgPSBGQUxTRSkNCmBgYA0KDQpgYGB7ciwgZWNobyA9IEZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBjb21tZW50PUZBTFNFfQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KHNjYWxlcykNCmxpYnJhcnkocGxvdGx5KQ0KbGlicmFyeShEVCkNCmxpYnJhcnkoZGF0YS50YWJsZSkNCmxpYnJhcnkoZ3RhYmxlKQ0KbGlicmFyeShwbG90bHkpDQpsaWJyYXJ5KGx1YnJpZGF0ZSkNCmxpYnJhcnkodnRhYmxlKQ0KbGlicmFyeShyanNvbikNCmxpYnJhcnkodGltZXRrKQ0KbGlicmFyeShSc3NhKQ0KYGBgDQoNCmBgYHtyLCBlY2hvID0gRkFMU0UsIHdhcm5pbmc9RkFMU0V9DQpjb3ZpZCA8LSByZWFkX2NzdigiZGF0YS9vd2lkLWNvdmlkLWRhdGEuY3N2IixzaG93X2NvbF90eXBlcyA9IEZBTFNFKQ0KI3ZhcmlhbnRzIDwtIHJlYWRfY3N2KCJkYXRhL2NvdmlkLXZhcmlhbnRzLmNzdiIsc2hvd19jb2xfdHlwZXMgPSBGQUxTRSkNCg0KZ2lzYWlkIDwtIGFzLmRhdGEuZnJhbWUoZnJlYWQoImRhdGEvZ2lzYWlkX3ZhcmlhbnRzX3N0YXRpc3RpY3MudHN2IikpICU+JSANCiAgcmVuYW1lKGRhdGUgPSBgV2VlayBwcmlvciB0b2AsDQogICAgICAgICBjb3VudCA9IGBTdWJtaXNzaW9uIENvdW50YCwNCiAgICAgICAgIHBlcmNfc2VxdWVuY2VzID0gYCUgcGVyIENvdW50cnkgYW5kIFdlZWtgLA0KICAgICAgICAgdG90YWwgPSBgVG90YWwgcGVyIENvdW50cnkgYW5kIFdlZWtgLA0KICAgICAgICAgdmFyaWFudCA9IFZhbHVlKSAlPiUgDQogIG11dGF0ZShkYXRlID0geW1kKGRhdGUpLA0KICAgICAgICAgcGVyY19zZXF1ZW5jZXMgPSByb3VuZChjb3VudCAvIHRvdGFsICogMTAwLCAzKSkjICU+JSANCiMgIHNlcGFyYXRlKHZhcmlhbnQsIGludG8gPSBjKCJ2YXJpYW50IiwgIm9yaWdpbiIpLCBzZXAgPSBjKCJmaXJzdCBkZXRlY3RlZCBpbiAiKSkNCg0KZ2lzYWlkX3ZhcmlhbnRzIDwtIGdpc2FpZCAlPiUgDQogIGZpbHRlcihUeXBlID09ICJWYXJpYW50IikgJT4lDQogIHNlcGFyYXRlKHZhcmlhbnQsIGMoInZhcmlhbnQiLCAib3JpZ2luIiksIHNlcCA9ICJmaXJzdCBkZXRlY3RlZCBpbiAiKSAlPiUgDQogIHNlbGVjdCgtVHlwZSkNCmBgYA0KDQpgYGB7cn0NCmNvdmlkX05BcyA8LSBjb3ZpZCAlPiUgDQogIGdyb3VwX2J5KGxvY2F0aW9uKSAlPiUgDQogIHN1bW1hcmlzZV9hbGwoZnVucyhzdW0oaXMubmEoLikpKSkgJT4lIA0KICBwaXZvdF9sb25nZXIoY29scyA9IC1sb2NhdGlvbiwgbmFtZXNfdG8gPSAiVmFyaWFibGUiLCB2YWx1ZXNfdG8gPSAiTkFzIikgJT4lIA0KICBtdXRhdGUoUGVyY2VudCA9IHJvdW5kKE5BcyAvIG5yb3coY292aWQpICogMTAwICwyKSkgJT4lIA0KICBhcnJhbmdlKC1OQXMpDQpgYGANCg0KYGBge3J9DQpjb3ZpZF9OQXMgJT4lIA0KICBncm91cF9ieShsb2NhdGlvbikgJT4lIA0KICBzdW1tYXJpc2UodG90YWxfcGN0X25hID0gc3VtKFBlcmNlbnQpKSAlPiUgDQogIGFycmFuZ2UodG90YWxfcGN0X25hKSAlPiUgDQogIGRhdGF0YWJsZShmaWx0ZXIgPSAndG9wJykNCmBgYA0KDQpgYGB7cn0NCiNIZWxwZXIgZnVuY3Rpb24gZm9yIGZpbHRlcmluZyBkYXRhDQpteV9kYXRhIDwtIGZ1bmN0aW9uKGNvdW50cnlfY292aWRfZmlsdGVyLCBjb3VudHJ5X2dpc2FpZF9maWx0ZXIpew0KICBkYXRhIDwtIGNvdmlkICU+JSANCiAgICBmaWx0ZXIobG9jYXRpb24gPT0gY291bnRyeV9jb3ZpZF9maWx0ZXIpDQogIGdpc2FpZF9kYXRhIDwtIGdpc2FpZF92YXJpYW50cyAlPiUgDQogICAgZmlsdGVyKENvdW50cnkgPT0gY291bnRyeV9naXNhaWRfZmlsdGVyKQ0KICBkYXRhIDwtIGxlZnRfam9pbihkYXRhLCBnaXNhaWRfZGF0YSwgYnkgPSAiZGF0ZSIpDQogIGRhdGENCn0NCg0KdXMgPC0gbXlfZGF0YSgiVW5pdGVkIFN0YXRlcyIsICJVU0EiKQ0KYGBgDQoNCg0KYGBge3IgIlVTIFBsb3RzIn0NCnZhcmlhbnRzX3Bsb3QgPC0gZ2dwbG90KGRhdGEgPSB1cywgYWVzKHggPSBkYXRlKSkgKw0KICBnZW9tX2FyZWEoYWVzKHkgPSBwZXJjX3NlcXVlbmNlcywgY29sb3IgPSB2YXJpYW50LCBmaWxsID0gdmFyaWFudCksIHBvc2l0aW9uID0gImRvZGdlIiwgc2hvdy5sZWdlbmQgPSBGQUxTRSkgKw0KICB0aGVtZV9taW5pbWFsKCkNCg0KDQpjYXNlc19wbG90IDwtDQogIGdncGxvdChkYXRhID0gdXMsIGFlcyh4ID0gZGF0ZSkpICsNCiAgZ2VvbV9saW5lKGFlcyh5ID0gbmV3X2Nhc2VzX3Blcl9taWxsaW9uKSwgc2hvdy5sZWdlbmQgPSBGQUxTRSkgKw0KICBnZW9tX2xpbmUoYWVzKHkgPSBuZXdfZGVhdGhzX3Blcl9taWxsaW9uKSkgKyANCiAgdGhlbWVfbWluaW1hbCgpDQoNCg0KZGVhdGhzX3Bsb3QgPC0gZ2dwbG90KGRhdGEgPSB1cywgYWVzKHggPSBkYXRlKSkgKw0KICBnZW9tX2xpbmUoYWVzKHkgPSBuZXdfZGVhdGhzX3Blcl9taWxsaW9uKSkgKyANCiAgdGhlbWVfbWluaW1hbCgpDQoNCg0KdmFjY2luYXRpb25zX3Bsb3QgPC0gZ2dwbG90KHVzLCBhZXMoeCA9IGRhdGUpKSArDQogIGdlb21fbGluZShhZXMoeSA9IG5ld192YWNjaW5hdGlvbnNfc21vb3RoZWRfcGVyX21pbGxpb24pKSArDQogIHRoZW1lX21pbmltYWwoKQ0KDQoNCnZhcmlhbnRzX2Nhc2VzX3Bsb3QgPC0gZ2dwbG90KGRhdGEgPSB1cywgYWVzKHggPSBkYXRlKSkgKyANCiAgZ2VvbV9hcmVhKGFlcyh5ID0gcGVyY19zZXF1ZW5jZXMsIGNvbG9yID0gdmFyaWFudCwgZmlsbCA9IHZhcmlhbnQpLCBzaG93LmxlZ2VuZCA9RkFMU0UsIGFscGhhID0gMC41LCBwb3NpdGlvbiA9ICJkb2RnZSIpICsgDQogIGdlb21fbGluZShhZXMoeSA9IG5ld19jYXNlc19zbW9vdGhlZF9wZXJfbWlsbGlvbiAvIDQwKSkgKyANCiAgc2NhbGVfeV9jb250aW51b3VzKCJQZXJjZW50IG9mIFNlcXVlbmNlcyIsIHNlYy5heGlzPXNlY19heGlzKH4uKjQwLCBuYW1lID0gIk5ldyBDYXNlcyBQZXIgTWlsbGlvbiIpKSArIA0KICB0aGVtZV9taW5pbWFsKCkgKyANCiAgbGFicyh0aXRsZSA9ICJQcm9wb3J0aW9uIG9mIENvdmlkIFZhcmlhbnRzIHZzIE5ldyBDYXNlcyBQZXIgTWlsbGlvbiIpICArDQogIGFubm90YXRlKGdlb209ImxhYmVsIiwgeD15bWQoMjAyMDA3MDEpLCB5PTc1LCBsYWJlbD0iQWxwaGEvT3RoZXIiKSArDQogIGFubm90YXRlKGdlb209ImxhYmVsIiwgeD15bWQoMjAyMTA5MDEpLCB5PTc1LCBsYWJlbD0iRGVsdGEiKSArDQogIGFubm90YXRlKGdlb209ImxhYmVsIiwgeD15bWQoMjAyMjAyMDEpLCB5PTc1LCBsYWJlbD0iT21pY3JvbiIpDQoNCg0KdmFyaWFudHNfZGVhdGhzX3Bsb3QgPC0gZ2dwbG90KGRhdGEgPSB1cywgYWVzKHggPSBkYXRlKSkgKyANCiAgZ2VvbV9hcmVhKGFlcyh5ID0gcGVyY19zZXF1ZW5jZXMsIGNvbG9yID0gdmFyaWFudCwgZmlsbCA9IHZhcmlhbnQpLHNob3cubGVnZW5kID1GQUxTRSwgYWxwaGEgPSAwLjUsIHBvc2l0aW9uID0gImRvZGdlIikgKyANCiAgZ2VvbV9saW5lKGFlcyh5ID0gbmV3X2RlYXRoc19zbW9vdGhlZF9wZXJfbWlsbGlvbio1KSkgKyANCiAgc2NhbGVfeV9jb250aW51b3VzKCJQZXJjZW50IG9mIFNlcXVlbmNlcyIsIHNlYy5heGlzPXNlY19heGlzKH4uLzUsIG5hbWUgPSAiTmV3IERlYXRocyBQZXIgTWlsbGlvbiIpKSArIA0KICB0aGVtZV9taW5pbWFsKCkgKyANCiAgbGFicyh0aXRsZSA9ICJQcm9wb3J0aW9uIG9mIENvdmlkIFZhcmlhbnRzIHZzIE5ldyBEZWF0aHMgUGVyIE1pbGxpb24iKSArDQogIGFubm90YXRlKGdlb209ImxhYmVsIiwgeD15bWQoMjAyMDA3MDEpLCB5PTc1LCBsYWJlbD0iQWxwaGEvT3RoZXIiKSArDQogIGFubm90YXRlKGdlb209ImxhYmVsIiwgeD15bWQoMjAyMTA5MDEpLCB5PTc1LCBsYWJlbD0iRGVsdGEiKSArDQogIGFubm90YXRlKGdlb209ImxhYmVsIiwgeD15bWQoMjAyMjAyMDEpLCB5PTc1LCBsYWJlbD0iT21pY3JvbiIpDQoNCg0KY2FzZXNfdmFjY2luYXRpb25zX3Bsb3QgPC0gZ2dwbG90KGRhdGEgPSB1cywgYWVzKHggPSBkYXRlKSkgKw0KICBnZW9tX2xpbmUoYWVzKHkgPSBuZXdfY2FzZXNfc21vb3RoZWRfcGVyX21pbGxpb24pLCBzaG93LmxlZ2VuZCA9IEZBTFNFKSArDQogIGdlb21fbGluZShhZXMoeSA9IHBlb3BsZV92YWNjaW5hdGVkX3Blcl9odW5kcmVkKjUwKSkgKyANCiAgc2NhbGVfeV9jb250aW51b3VzKCJOZXcgQ2FzZXMgUGVyIE1pbGxpb24iLCBzZWMuYXhpcz1zZWNfYXhpcyh+Li81MCwgbmFtZSA9ICJQZW9wbGUgVmFjY2luYXRlZCBQZXIgSHVuZHJlZCIpKSArIA0KICB0aGVtZV9taW5pbWFsKCkgKyANCiAgbGFicyh0aXRsZSA9ICJOZXcgQ2FzZXMgUGVyIE1pbGxpb24gdnMuIFBlb3BsZSBWYWNjaW5hdGVkIFBlciBIdW5kcmVkIikNCg0KZGVhdGhzX3ZhY2NpbmF0aW9uc19wbG90IDwtIGdncGxvdCh1cywgYWVzKHggPSBkYXRlKSkgKw0KICBnZW9tX2xpbmUoYWVzKHkgPSBuZXdfZGVhdGhzX3Blcl9taWxsaW9uKSwgc2hvdy5sZWdlbmQgPSBGQUxTRSkgKw0KICBnZW9tX2xpbmUoYWVzKHkgPSBwZW9wbGVfZnVsbHlfdmFjY2luYXRlZF9wZXJfaHVuZHJlZC83KSkgKyANCiAgc2NhbGVfeV9jb250aW51b3VzKCJOZXcgRGVhdGhzIFBlciBNaWxsaW9uIiwgc2VjLmF4aXM9c2VjX2F4aXMofi4qNywgbmFtZSA9ICJQZW9wbGUgVmFjY2luYXRlZCBQZXIgSHVuZHJlZCIpKSArIA0KICB0aGVtZV9taW5pbWFsKCkgKyANCiAgbGFicyh0aXRsZSA9ICJOZXcgRGVhdGhzIFBlciBNaWxsaW9uIHZzLiBQZW9wbGUgRnVsbHkgVmFjY2luYXRlZCBQZXIgSHVuZHJlZCIpDQoNCg0KdmFyaWFudHNfaG9zcGl0YWxpemF0aW9uc19wbG90IDwtIGdncGxvdCh1cywgYWVzKHggPSBkYXRlKSkgKyANCiAgZ2VvbV9hcmVhKGFlcyh5ID0gcGVyY19zZXF1ZW5jZXMsIGNvbG9yID0gdmFyaWFudCwgZmlsbCA9IHZhcmlhbnQpLCBzaG93LmxlZ2VuZCA9RkFMU0UsIGFscGhhID0gMC41LCBwb3NpdGlvbiA9ICJkb2RnZSIpICsgDQogIGdlb21fbGluZShhZXMoeSA9IHdlZWtseV9ob3NwX2FkbWlzc2lvbnNfcGVyX21pbGxpb24gLyA1KSkgKyANCiAgc2NhbGVfeV9jb250aW51b3VzKCJQZXJjZW50IG9mIFNlcXVlbmNlcyIsIHNlYy5heGlzPXNlY19heGlzKH4uKjUsIG5hbWUgPSAiSG9zcGl0YWxpemF0aW9ucyBQZXIgTWlsbGlvbiIpKSArIA0KICB0aGVtZV9taW5pbWFsKCkgKyANCiAgbGFicyh0aXRsZSA9ICJQcm9wb3J0aW9uIG9mIENvdmlkIFZhcmlhbnRzIHZzIEhvc3BpdGFsaXphdGlvbnMgUGVyIE1pbGxpb24iKSArDQogIGFubm90YXRlKGdlb209ImxhYmVsIiwgeD15bWQoMjAyMDA3MDEpLCB5PTc1LCBsYWJlbD0iQWxwaGEvT3RoZXIiKSArDQogIGFubm90YXRlKGdlb209ImxhYmVsIiwgeD15bWQoMjAyMTA5MDEpLCB5PTc1LCBsYWJlbD0iRGVsdGEiKSArDQogIGFubm90YXRlKGdlb209ImxhYmVsIiwgeD15bWQoMjAyMjAyMDEpLCB5PTc1LCBsYWJlbD0iT21pY3JvbiIpDQoNCnZhcmlhbnRzX3ZhY2NpbmF0aW9uc19wbG90IDwtIGdncGxvdCh1cywgYWVzKHggPSBkYXRlKSkgKyANCiAgZ2VvbV9hcmVhKGFlcyh5ID0gcGVyY19zZXF1ZW5jZXMsIGNvbG9yID0gdmFyaWFudCwgZmlsbCA9IHZhcmlhbnQpLCBzaG93LmxlZ2VuZCA9RkFMU0UsIGFscGhhID0gMC41LCBwb3NpdGlvbiA9ICJkb2RnZSIpICsgDQogIGdlb21fbGluZShhZXMoeSA9IHBlb3BsZV9mdWxseV92YWNjaW5hdGVkX3Blcl9odW5kcmVkKSkgKyANCiAgc2NhbGVfeV9jb250aW51b3VzKCJQZXJjZW50IG9mIFNlcXVlbmNlcyIsIHNlYy5heGlzPXNlY19heGlzKH4uLCBuYW1lID0gIlBlb3BsZSBWYWNjaW5hdGVkIFBlciBIdW5kcmVkIikpICsgDQogIHRoZW1lX21pbmltYWwoKSArIA0KICBsYWJzKHRpdGxlID0gIlByb3BvcnRpb24gb2YgQ292aWQgVmFyaWFudHMgdnMgUGVvcGxlIEZ1bGx5IFZhY2NpbmF0ZWQiKSArDQogIGFubm90YXRlKGdlb209ImxhYmVsIiwgeD15bWQoMjAyMDA3MDEpLCB5PTc1LCBsYWJlbD0iQWxwaGEvT3RoZXIiKSArDQogIGFubm90YXRlKGdlb209ImxhYmVsIiwgeD15bWQoMjAyMTA5MDEpLCB5PTc1LCBsYWJlbD0iRGVsdGEiKSArDQogIGFubm90YXRlKGdlb209ImxhYmVsIiwgeD15bWQoMjAyMjAyMDEpLCB5PTc1LCBsYWJlbD0iT21pY3JvbiIpDQoNCnZhcmlhbnRzX3ZhY2NpbmF0aW9uc19wbG90DQpgYGANCg0KYGBge3J9DQp2YWNjaW5hdGlvbnNfcGxvdA0KYGBgDQoNCmBgYHtyfQ0KdmFyaWFudHNfY2FzZXNfcGxvdCA8LSBnZ3Bsb3QoZGF0YSA9IHVzLCBhZXMoeCA9IGRhdGUpKSArIA0KICBnZW9tX2FyZWEoYWVzKHkgPSBwZXJjX3NlcXVlbmNlcywgY29sb3IgPSB2YXJpYW50LCBmaWxsID0gdmFyaWFudCksIHNob3cubGVnZW5kID1GQUxTRSwgYWxwaGEgPSAwLjUsIHBvc2l0aW9uID0gImRvZGdlIikgKyANCiAgZ2VvbV9saW5lKGFlcyh5ID0gbmV3X2Nhc2VzX3Ntb290aGVkX3Blcl9taWxsaW9uIC8gNDApKSArIA0KICBzY2FsZV95X2NvbnRpbnVvdXMoIlBlcmNlbnQgb2YgU2VxdWVuY2VzIiwgc2VjLmF4aXM9c2VjX2F4aXMofi4qNDAsIG5hbWUgPSAiTmV3IENhc2VzIFBlciBNaWxsaW9uIikpICsgDQogIHRoZW1lX21pbmltYWwoKSArIA0KICBsYWJzKHRpdGxlID0gIlByb3BvcnRpb24gb2YgQ292aWQgVmFyaWFudHMgdnMgTmV3IENhc2VzIFBlciBNaWxsaW9uIikgKw0KICBhbm5vdGF0ZShnZW9tPSJsYWJlbCIsIHg9eW1kKDIwMjAwNzAxKSwgeT03NSwgbGFiZWw9IkFscGhhL090aGVyIikgKw0KICBhbm5vdGF0ZShnZW9tPSJsYWJlbCIsIHg9eW1kKDIwMjEwOTAxKSwgeT03NSwgbGFiZWw9IkRlbHRhIikgKw0KICBhbm5vdGF0ZShnZW9tPSJsYWJlbCIsIHg9eW1kKDIwMjIwMjAxKSwgeT03NSwgbGFiZWw9Ik9taWNyb24iKQ0KDQp2YXJpYW50c19jYXNlc19wbG90DQpgYGANCg0KYGBge3J9DQp2YXJpYW50c19ob3NwaXRhbGl6YXRpb25zX3Bsb3QNCmBgYA0KDQpgYGB7cn0NCnZhcmlhbnRzX2RlYXRoc19wbG90DQpgYGANCg0KDQojIFRpbWUgU2VyaWVzIEFuYWx5c2lzDQoNCmBgYHtyfQ0KdXMgJT4lIA0KICBwbG90X3RpbWVfc2VyaWVzKGRhdGUsIG5ld19jYXNlc19zbW9vdGhlZF9wZXJfbWlsbGlvbikNCmBgYA0KDQpgYGB7cn0NCnVzICU+JSANCiAgcGxvdF9hY2ZfZGlhZ25vc3RpY3MoZGF0ZSwgbmV3X2Nhc2VzX3Ntb290aGVkX3Blcl9taWxsaW9uLCAuc2hvd193aGl0ZV9ub2lzZV9iYXJzID0gVCkgDQpgYGANCg0KDQpgYGB7cn0NCmdpc2FpZF92YXJpYW50cyAlPiUgDQogIGZpbHRlcihDb3VudHJ5ID09ICJVU0EiLCB2YXJpYW50ICVpbiUgYygiVk9DIE9taWNyb24gR1JBIChCLjEuMS41MjkrQkEuKikgIiwgIlZPQyBEZWx0YSBHSyAoQi4xLjYxNy4yK0FZLiopICIsICJWT0MgQWxwaGEgR1JZIChCLjEuMS43K1EuKikgIikpICU+JSANCiAgcGxvdF90aW1lX3NlcmllcyhkYXRlLCBwZXJjX3NlcXVlbmNlcywgLmZhY2V0X3ZhcnM9dmFyaWFudCwgLmxlZ2VuZF9zaG93ID0gRkFMU0UpDQpgYGANCg0KYGBge3J9DQpnaXNhaWRfdmFyaWFudHMgJT4lIA0KICBmaWx0ZXIoQ291bnRyeSA9PSAiVVNBIiwgdmFyaWFudCAlaW4lIGMoIlZPQyBPbWljcm9uIEdSQSAoQi4xLjEuNTI5K0JBLiopICIsICJWT0MgRGVsdGEgR0sgKEIuMS42MTcuMitBWS4qKSAiLCAiVk9DIEFscGhhIEdSWSAoQi4xLjEuNytRLiopICIpKSAlPiUgDQogIGdyb3VwX2J5KHZhcmlhbnQpICU+JSANCiAgcGxvdF9hY2ZfZGlhZ25vc3RpY3MoZGF0ZSwgcGVyY19zZXF1ZW5jZXMsIC5zaG93X3doaXRlX25vaXNlX2JhcnMgPSBUKSANCmBgYA0KDQpgYGB7cn0NCmxpYnJhcnkoInNmIikNCmxpYnJhcnkoInJuYXR1cmFsZWFydGgiKQ0KbGlicmFyeSgicm5hdHVyYWxlYXJ0aGRhdGEiKQ0KDQp3b3JsZCA8LSBuZV9jb3VudHJpZXMoc2NhbGUgPSAibWVkaXVtIiwgcmV0dXJuY2xhc3MgPSAic2YiKQ0KY2xhc3Mod29ybGQpDQpgYGANCg0KYGBge3J9DQp1bmlxdWUoZ2lzYWlkJENvdW50cnkpDQpgYGANCg0KYGBge3J9DQp1bmlxdWUoY292aWQkbG9jYXRpb24pDQpgYGANCg0KDQpgYGB7cn0NCndvcmxkX3ZhcmlhbnRzIDwtIGdpc2FpZCAlPiUgDQogIGdyb3VwX2J5KENvdW50cnkpICU+JSANCiAgbXV0YXRlKENvdW50cnkgPSBjYXNlX3doZW4oDQogIENvdW50cnkgPT0gIlVTQSIgfiAiVW5pdGVkIFN0YXRlcyIsDQogIFRSVUUgfiBhcy5jaGFyYWN0ZXIoQ291bnRyeSkNCiAgKSkgJT4lIA0KICBzdW1tYXJpc2UobW9zdF9yZWNlbnRfZGF0ZSA9IGRhdGVbbigpXSwgDQogICAgICAgICAgICBwcmV2YWxlbnRfdmFyaWFudCA9IHZhcmlhbnRbZGF0ZSA9PSBkYXRlW24oKV0gJiBUeXBlID09ICJWYXJpYW50IiAmIHBlcmNfc2VxdWVuY2VzID09IG1heChwZXJjX3NlcXVlbmNlcyldKSAlPiUgDQogICAgICAgICAgICAjcHJldmFsZW50X2xpbmVhZ2UgPSB2YXJpYW50W2RhdGUgPT0gZGF0ZVtuKCldICYgVHlwZSA9PSAiTGluZWFnZSIgJiBwZXJjX3NlcXVlbmNlcyA9PSBtYXgocGVyY19zZXF1ZW5jZXMpXSkgJT4lIA0KICBhcnJhbmdlKGRlc2MobW9zdF9yZWNlbnRfZGF0ZSkpICU+JSANCiAgcmVuYW1lKGxvY2F0aW9uID0gQ291bnRyeSkNCg0Kd29ybGRfdmFyaWFudHMgPC0gbGVmdF9qb2luKHdvcmxkX3ZhcmlhbnRzLCBjb3ZpZFssIGMoImxvY2F0aW9uIiwgImlzb19jb2RlIildLCBieSA9ICJsb2NhdGlvbiIsIGFsbC54ID0gVFJVRSkgJT4lIA0KICByZW5hbWUoZ3VfYTMgPSBpc29fY29kZSkNCg0Kd29ybGRfdmFyaWFudHNfbWFwIDwtIGxlZnRfam9pbih3b3JsZCwgd29ybGRfdmFyaWFudHMsIGJ5ID0gImd1X2EzIiwgYWxsLnggPSBUUlVFKQ0KYGBgDQoNCmBgYHtyfQ0KcCA8LSBnZ3Bsb3QoZGF0YSA9IHdvcmxkX3ZhcmlhbnRzX21hcCksIGFlcyhmaWxsID0gcHJldmFsZW50X3ZhcmlhbnQpKSArIA0KICBnZW9tX3NmKHNob3cubGVnZW5kID0gRkFMU0UpICsgDQogIHhsYWIoIkxvbmdpdHVkZSIpICsgDQogIHlsYWIoIkxhdGl0dWRlIikgKyANCiAgdGhlbWUocGFuZWwuZ3JpZC5tYWpvciA9IGVsZW1lbnRfbGluZShjb2xvciA9IGdyYXkoLjUpLCBsaW5ldHlwZSA9ICJkYXNoZWQiLCBzaXplID0gMC41KSwgcGFuZWwuYmFja2dyb3VuZCA9IGVsZW1lbnRfcmVjdChmaWxsID0gImFsaWNlYmx1ZSIpKSANCmBgYA0KDQpgYGB7cn0NCnANCmBgYA0KDQoNCg==